'''
Created on 25/06/2012

@author: nacho
'''
import pygame
from bala import Bala

class Player(pygame.sprite.Sprite):
    '''
    classdocs
    '''


    def __init__(self, imagen, shotSound, bullet,  left, top, life = 1, tiempo_entre_disparos = 0):
        '''
        Constructor
        '''
        self.vida = life
        self.imagen = imagen
        self.rect = imagen.get_rect()
        self.rect.top = top
        self.rect.left = left
        self.imagen_disparo = bullet
        #Cargo un sonido de explosion
        self.explosionImagen = pygame.image.load("explosion.png")
        self.explosionSound = pygame.mixer.Sound("bomb.wav")
        self.hitSound = pygame.mixer.Sound("hit.wav")
        self.shotSound = shotSound
        self.tiempo_entre_disparos = tiempo_entre_disparos
        self.disparosAutomaticos = tiempo_entre_disparos

    def mover(self, x, y):
        self.rect.move_ip(x, y)

    def update(self, surface):
        surface.blit(self.imagen, self.rect)

    def disparado(self):
        if self.vida == 1:
            #Hace todo lo correspondiente con explotar
            self.explota()
            #Exploto
            return True
        else:
            self.hitSound.play()
            #Disminuye la vida
            self.vida -= 1
            #No exploto aun
            return False

    def explota(self):
        self.explosionSound.play()
        self.imagen = self.explosionImagen

    def get_x(self):
        return self.rect.left

    def get_y(self):
        return self.rect.top

    def disparar_si_es_necesario(self, balas):
        if self.disparosAutomaticos == 0:
            self.disparar(balas)
            self.disparosAutomaticos = self.tiempo_entre_disparos
        else:
            self.disparosAutomaticos -= 1

    def disparar(self, balas):
        self.shotSound.play()
        bala_y = self.rect.top
        bala_x = self.rect.left + 60
        balaNueva = Bala(self.imagen_disparo, bala_x, bala_y)
        balas.agregar(balaNueva)
